Search


2019 年新課程,【Clean Coder:#DI與AOP進階實戰】,往軟體架構師前進...

  • Share this:


2019 年新課程,【Clean Coder:#DI與AOP進階實戰】,往軟體架構師前進的第一塊敲門磚。

怎麼樣避免成為架構太空人,怎麼樣能捲起袖子針對新系統從無到有,針對 legacy 系統重構成剛好的 clean code,讓你不用再為了擴充的彈性與可測試性煩惱,透過重構讓你不會 over design。

※ 這門課主軸絕對不是在介紹 DI/AOP 框架怎麼樣,而是介紹你能怎樣透過最基本的設計原則、設計模式來解決問題。框架可以幫助你達到哪些便利性。

▍傳送門https://dotblogs.com.tw/hatelove/2018/11/14/201905-dependency-injection-and-aspect-oriented-programming

※ 首梯次課程優惠折抵 3600,錯過不再。

※ 2019 年預計會逐步開一些更進階一點的培訓內容,把整個 clean coder 的 road map 大致底定下來。

▍課程簡介
這門培訓會從物件導向的基本,以解決實務問題與需求為出發點,深入淺出帶著大家了解,為何我們的系統設計需要使用 interface,需要依賴注入。

在沒有依賴注入框架的協助下,你該怎麼用基本原則來解決耦合過高的問題。怎麼應用設計模式來幾解決複雜度過高的設計問題。接著說明,我們可以透過依賴注入框架來幫助我們更方便地處理哪些繁瑣的處理。

帶著大家手把手,把 legacy code 重構成乾淨的設計,如何較無痛地引入依賴注入與 AOP 設計,讓你具備基本的軟體架構設計能力,從此不再為擴充性跟可測試性煩惱。

解決實務設計的問題,例如:

① 你怎麼避免需求異動時,寫出像波動拳一般的 if/else,導致複雜度指數增加,測試案例全都要跟著調整。

② 需求異動時,怎麼樣可以只寫新的類別,靈活地切換實作類別,並組合出新的功能,達到開放封閉原則。
怎麼把安全性的處理(如 Authentication/Authorization)、例外處理、log 與 Cache 等與業務獨立的設計拆分出來,既滿足單一職責,關注點分離,且能在系統上像外掛一般加載設計。

③ 了解如何透過標記式(Attribute/Annotation)設計來優化你的架構設計。

▍課程主題涵蓋範圍
● 耦合過高導致的問題,以及為何會出現複雜度過高
● 依賴反轉原則、介面導向設計、依賴注入設計
● 工廠模式(Factory)、策略模式(Strategy)、裝飾者模式(Decorator)、單例模式(Singleton)
● 依賴注入框架簡介
● 橫切面攔截器設計、獨立測試攔截器

※ 本課程不適合只想嘴砲的人,兩天都是實作,沒有投影片跟講義,只有 dropbox paper + GitHub + flip charts


Tags:

About author
我是 Joey Chen,闖蕩江湖的稱號是 91,熱血點火師,專門燃起大家心裡面的熱情與初衷。 目前為 Odd-e Taiwan 的負責人,同時也是 JetBrains 在台灣的培訓夥伴,至今也仍是熱愛學習與享受各種程式語言之美的 programmer。 身為敏捷教練,擅長 Agile、Scrum、LeSS 等敏捷文化與協作框架的落實與導入,如何讓大家 being agile 而不是 doing agile。同時喜歡結合各家所長,例如 Lean, Kanban 等,重點是持續改善、解決問題、端出成果,而不執著於某種特定方法論或框架。 身為技術教練,我也是極限編程(extreme programming)的狂熱者,我擅長用這些技術與工程實踐來提昇產品的品質、團隊的生產力、降低營運風險,因應市場與公司的商業目標,讓團隊能具有高適應與反應能力的基礎建設。例如 實例化需求、ATDD、BDD、TDD、重構、自動化單元測試/整合測試/驗收測試、CI/CD、code review、pair programming、mob-programming 等等。 同時,我也是推崇 極速開發 的 developer,追求從想法到產品程式碼的完成,中間的時間差能趨近於零,也就是劍隨心轉,想到哪,程式碼就長到哪的境界。從想法到實現中間的等待,其實在實務上佔了很大的 context switch 成本,如果能讓這段時間縮到最短,就能比其他人多嘗試更多種解決方案,進而挑選出最剛好的方案。 同時也是技術社群的活躍份子,從 2010 年開始連任九屆的微軟 MVP,兼任 MSDN 論壇板主,也曾經獲得年度 MSDN 文件庫刊登數量世界第一的榮耀。對微軟技術有愛,對 C# 有愛,對自動測試有愛,對重構與設計模式有愛。近年來對 Java, PHP, Python 也充滿濃厚的興趣,曾帶領客戶團隊中不會寫程式的 QA ,一起用 Python 完成超過百個 mobile UI 自動化測試。 擁有超過十年擔任開發團隊 tech leader, trainer, coach 與 mentor 的經驗,進行的企業內部與公開技術培訓課程已超過 100 場,培訓過的開發人員超過 1000 位,擔任研討會與社群活動的講師次數超過 30 次。 同時也是技術書籍的作者與譯者,與朋友合著的書籍包含《ASP.NET MVC 5:網站開發美學》、《ASP.NET MVC 4 網站開發美學》,翻譯的書籍有《單元測試的藝術-第二版》、《敏捷開發實踐》、《進入IT產業必讀的200個 .NET面試決勝題》。 如果想跟我即時互動,歡迎直接私訊或 email 至 [email protected]
請參考:https://tdd.best/about/
View all posts